package com.jielin.handling.service.tsuspect;


import com.jielin.handling.entity.suspectandcase.SuspectAndCase;
import com.jielin.handling.entity.tsuspect.*;
import com.jielin.handling.entity.virtual.Virtual;
import com.jielin.handling.entity.vo.PoliceVo;
import com.jielin.handling.entity.vo.TSuspecListVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author chenzhang
 * @date 2019/3/14 - 9:33
 */
public interface TSuspectService {
    int addBracelet(TBracelet tBracelet);//嫌疑人手环添加
    List<TSuspec> selectSuspect(SuspectVo search);//人員切換查詢
    int savePhoto(String path,String id);//人员头像添加
    int highMeter(String path,String suspectId);//高拍仪拍照
    int updateSuspect(TSuspec tSuspec);//嫌疑人添加
    void  deleteVitual(String id);
    void insertVitual(TSuspectVirtual tSuspectVirtual);
    int creatId(String id);//人员id添加
    TSuspecListVo selectState(TSuspec tsuspect);//人员状态查看

    List<DecicesStateVo> deviceState(String organizationId);//审讯室设备状态查询

    List<TSuspec> unRelated(TSuspec suspec);//查询未关联人员信息

   int  updateRelatedCases(TSuspec suspec);//未关联人员更新

    TSuspec selectStatue(String id);//根据id查看嫌疑人的办案流程

    List<TSuspec> auditFailed(TSuspec suspec);//待上传文件列表

    List handlingState(int pageNum,int pageSize);//办案区实时状态

    List<TSuspec> countCase(TSuspec tsuspect);//案件类型统计列表

    Map<String, List<Object>> casePic(String policeId);//根据民警id查询案件类型统计图

    List<String> selectNameByCase(String caseCode);//根据案件查询嫌疑人的信息(name)

    PoliceVo selectPolice(String id);//民警查询

    List<PoliceVo> selectRecorder(String policeId);//民警执法记录首页

    Map handNumber(String handleUnitCode);//办案区实时人数

    TSuspec selectById(String id);//根据嫌疑人id查询嫌疑人信息
    List<TSuspec>  selectByStatus(TSuspec  suspec);//根据状态查询嫌疑人信息

    Map selectByCaseCode(TSuspec tSuspec);//根据案件编号查询案件关联和未关联的嫌疑人(二次审讯)

    int updateFiled(TSuspec suspec);//嫌疑人其他在场人员信息

    List<TSuspec> selectCodeAndName(String unitCode,String name);//案件编号和案件名称下拉框

    List<TSuspec> selectCompleteCase(String unitCode,String name);//查询已完结案件编号和案件名称下拉框

    List<TSuspec> selectAllCodeAndName(String unitCode);//所有案件编号和案件名称下拉框

    List<TSuspec> selectPoliceByUnitcode(String unitCode);//根据单位编号查询所有民警信息(活动人员陪同民警下拉框)

    List<TSuspec> relatedSuspect(String caseCode);//查询嫌疑人列表下拉框

    List<TSuspec> selectSuspectByCaseCode(String caseCode);//根据案件编号查询案件关联的所有嫌疑人


   List<Virtual> selectVirtual(String virtualId);//嫌疑人虚率身份id

    List<PoliceVo>  selectOnlyPolice(String unitCode);//只查询单位下所有办案民警
    
	int getCaseNumByPoliceId(TSuspec tSuspec);// 根据民警id查询该单位下的案件数量

    List<TSuspec> selectSuspectnameByCaseCode(String caseCode);//根据案件编号查询该案件下的所有嫌疑人姓名等信息(警综嫌疑人表)

    List<TSuspec> selectSuspectnameByUnitcode(String  unitCode);//根据单位编号查询所有嫌疑人名称

    int addSuspect(SuspectAndCase suspectAndCase);//嫌疑人添加

    int selectByCaseCodeAndIdValue(SuspectAndCase suspectAndCase);//通过案件编号和身份证号查询是否有这一条记录

    int updateSuspect2(SuspectAndCase suspectAndCase);//嫌疑人添加

    SuspectAndCase selectSuspectById(String id);//根据id查询嫌疑人

    List<TSuspec> selectSuspectNameByHandleUnitCode(String unitCode);//根据单位编号查询案管中心审核已经通过的所有嫌疑人姓名

    int savePhoto2(MultipartFile file, String id, String fileString);

    void updateIsTwotrial(String id,String caseCode);
}
